﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text.RegularExpressions;
using System.IO;

public partial class User_MasterPage : System.Web.UI.MasterPage
{
    private string username;
    private string password;
    DanhMucCtr dm = new DanhMucCtr();
    PhanLoaiCtr pl = new PhanLoaiCtr();
    
    void layPhanLoai1()
    {
        dlPhanLoai1.DataSource = pl.layPhanLoai();
        dlPhanLoai1.DataTextField = "TenLoaiSP";
        dlPhanLoai1.DataValueField = "LoaiSP";
        dlPhanLoai1.DataBind();
        ListItem list = new ListItem("Tất cả", "0");
        ListItem list1 = new ListItem("Sản phẩm bán chạy", "-2");
        ListItem list2 = new ListItem("Sản phẩm cho độ tuổi", "-1");
        ListItem list3 = new ListItem("Sản phẩm cho giới tính", "-3");
        dlPhanLoai1.Items.Insert(0, list);
        dlPhanLoai1.Items.Insert(1, list1);
        dlPhanLoai1.Items.Insert(2, list2);
        dlPhanLoai1.Items.Insert(3, list3);
        dlPhanLoai1.SelectedIndex = 0;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        StreamReader reader = new StreamReader(Server.MapPath("~/LuotTruyCap.txt"));
        int luot = int.Parse(reader.ReadLine().ToString());
        reader.Close();
        luot = luot + 1;
        lbLuotTruyCap.Text = luot.ToString();
        StreamWriter writer = new StreamWriter(Server.MapPath("~/LuotTruyCap.txt"));
        writer.WriteLine(luot.ToString());
        writer.Close();

        if (Session["ShoppingCartD"] != null)
        {
            ShoppingCart shoppingCart = (ShoppingCart)Session["ShoppingCartD"];
            SanPham.Text = shoppingCart.SoSP.ToString();
            SoTien.Text = shoppingCart.SoTien.ToString();
        }
        else
        {
            SanPham.Text = "0";
            SoTien.Text = "0";
        }
        if (!IsPostBack)
        {
            SanPhamCtr sanPhamNN = new SanPhamCtr();
            dlistNN.DataSource = sanPhamNN.GetSanPhamNgauNhien();
            dlistNN.DataBind();
            layPhanLoai1();
            dlDoTuoi.Visible = false;
            txtTimKiem1.Visible = true;
            txtTuNgay.Visible = false;
            txtDenNgay.Visible = false;
            txtDenDoTuoi.Visible = false;
            txtTuDoTuoi.Visible = false;
           
        }
    }
    public DataTable phanLoai()
    {
        return pl.layPhanLoai();
    }

    public DataTable danhMuc()
    {
        return dm.layDanhMuc();
    }
    private bool checkValid()
    {
        Regex regex = new Regex("^[0-9a-zA-Z]*$");
        bool valid = regex.IsMatch(username) && regex.IsMatch(password) && !String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(password);
        if (!valid)
        {
            lbError.Text = "Tên đăng nhập hoặc mật khẩu không hợp lệ!";
            return valid;
        }
        if (username.Length > 20 || password.Length > 20 && username.Length < 6 && password.Length < 6)
        {
            lbError.Text = "Tên đăng nhập hoặc mật khẩu không quá 20 và lớn hơn 5 ký tự!";
            valid = false;
        }
        return valid;
    }
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {

            username = txtAccount.Text.Trim();
            password = txtPassword.Text.Trim();
            if (checkValid())
            {

                ThanhVienCtr thanhVienCtr = new ThanhVienCtr();
                bool check = thanhVienCtr.DangNhap(username, password);
                if (check)
                {
                    Session["UserTypeU"] = "KhachHang";
                    Session["UserIDU"] = username;
                    txtAccount.Text = "";
                    txtPassword.Text = "";
                    lbError.Text = "Đăng nhập thành công!";
                    Response.Redirect(Request.RawUrl); 
                }
                else
                {
                    txtAccount.Text = "";
                    txtPassword.Text = "";
                    lbError.Text = "Đăng nhập không thành công!";

                }
            }
        }
        catch (Exception ex)
        {
            lbError.Text = "Đăng nhập không thành công!";
        }
    }

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        //if (txtTimKiem.Value == "Tìm kiếm")
        //{
            int vtloaiSP = dlPhanLoai1.SelectedIndex;
            if (vtloaiSP > 3 && txtTimKiem1.Value != "Tìm kiếm")
            {
                string tenSP = txtTimKiem1.Value;
                string loaiSP = dlPhanLoai1.SelectedValue;
                Response.Redirect("SearchResult.aspx?LoaiSP=" + loaiSP + "&TenSP=" + tenSP);
            }
            if (vtloaiSP > 3 && txtTimKiem1.Value == "Tìm kiếm")
            {
                // string tenSP = txtTimKiem.Value;
                string loaiSP = dlPhanLoai1.SelectedValue;
                Response.Redirect("SearchResult.aspx?LoaiSP=" + loaiSP + "&TenSP=");
            }
            if (vtloaiSP == 0 && txtTimKiem1.Value != "Tìm kiếm")
            {
                string tenSP = txtTimKiem1.Value;
                //string loaiSP = dlPhanLoai.SelectedValue;
                Response.Redirect("SearchResult.aspx?LoaiSP=&TenSP=" + tenSP);
            }
            if (vtloaiSP == 1 && (txtTuNgay.Value == "Từ ngày" || txtDenNgay.Value == "Đến ngày"))
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Bạn phải nhập vào ngày bắt đầu và ngày kết thúc!')", true);
                //Response.Redirect("Home.aspx");
                return;
            }
            if (vtloaiSP == 2 && (txtTuDoTuoi.Value == "Từ độ tuổi " || txtDenDoTuoi.Value == "Đến độ tuổi "))
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Bạn phải nhập vào từ độ tuổi nào và đến độ tuổi nào!')", true);
                //Response.Redirect("Home.aspx");
                return;
            }
            try
            {
                if (vtloaiSP == 1 && txtTuNgay.Value != "Từ ngày" && txtDenNgay.Value != "Đến ngày")
                {
                    //string tuNgay = txtTuNgay.Value;
                    //string denNgay = txtDenNgay.Value;
                    //Response.Redirect("SearchResult.aspx?TuNgay=" + tuNgay + "&DenNgay=" + denNgay);
                    string[] tuNgayTam = txtTuNgay.Value.Split('/');
                    string tuNgay = tuNgayTam[tuNgayTam.Length - 2] + "/" + tuNgayTam[0] + "/" + tuNgayTam[tuNgayTam.Length - 1];
                    string[] denNgayTam = txtDenNgay.Value.Split('/');
                    string denNgay = denNgayTam[denNgayTam.Length - 2] + "/" + denNgayTam[0] + "/" + denNgayTam[denNgayTam.Length - 1];
                    Response.Redirect("SearchResult.aspx?TuNgay=" + tuNgay + "&DenNgay=" + denNgay);
                }
            }
            catch
            {
                //ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Ngày bắt đầu hoặc ngày kết thúc không hợp lệ!')", true);
                ////Response.Redirect("Home.aspx");
                //return;
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Ngày bắt đầu hoặc ngày kết thúc không hợp lệ!')", true);
                //Response.Redirect("Home.aspx");
                txtTuNgay.Value = "Từ ngày";
                // txtTuNgay.Focus();
                txtDenNgay.Value = "Đến ngày";
                return;
            }
            try
            {
                if (vtloaiSP == 2 && txtDenDoTuoi.Value != "Đến độ tuổi " && txtTuDoTuoi.Value != "Từ độ tuổi ")
                {
                    //int doTuoi = int.Parse(dlDoTuoi.SelectedValue);
                    string tuTuoi = txtTuDoTuoi.Value;
                    string denTuoi = txtDenDoTuoi.Value;
                    Response.Redirect("SearchResult.aspx?TuDoTuoi=" + tuTuoi + "&DenDoTuoi=" + denTuoi);
                }
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Độ tuổi không hợp lệ !')", true);
                //Response.Redirect("Home.aspx");
                return;
            }
            if (vtloaiSP == 3)
            {
                string gioiTinh = dlDoTuoi.SelectedItem.Text;
                Response.Redirect("SearchResult.aspx?GioiTinh=" + gioiTinh);
            }
            Response.Redirect("SearchResult.aspx?LoaiSP=&TenSP=");

        //}
        //else
        //{
        //    ScriptManager.RegisterStartupScript(this,this.GetType(),"alert","alert('Ban hay nhap tu khoa vao')",true);
        //   // Response.Redirect()
        //}
    }
    protected void dlPhanLoai1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (dlPhanLoai1.SelectedIndex == 2)
        {
            dlDoTuoi.Visible = false;
            txtTimKiem1.Visible = false;
            txtTuNgay.Visible = false;
            txtDenNgay.Visible = false;
            txtTuDoTuoi.Visible = true;
            txtDenDoTuoi.Visible = true;
        }
        if (dlPhanLoai1.SelectedIndex != 2)
        {
            dlDoTuoi.Visible = false;
            txtTimKiem1.Visible = true;
            txtTuNgay.Visible = false;
            txtDenNgay.Visible = false;
            txtDenDoTuoi.Visible = false;
            txtTuDoTuoi.Visible = false;
        }
        if (dlPhanLoai1.SelectedIndex == 1)
        {
            dlDoTuoi.Visible = false;
            txtTimKiem1.Visible = false;
            txtTuNgay.Visible = true;
            txtDenNgay.Visible = true;
            txtDenDoTuoi.Visible = false;
            txtTuDoTuoi.Visible = false;
        }
        if (dlPhanLoai1.SelectedIndex == 3)
        {
            dlDoTuoi.Visible = true;
            txtTimKiem1.Visible = false;
            txtTuNgay.Visible = false;
            txtDenNgay.Visible = false;
            txtDenDoTuoi.Visible = false;
            txtTuDoTuoi.Visible = false;
        }
    }
}
